package com.tjsinfo.tjsoa.system.dao;

import java.util.List;

import com.tjsinfo.tjsoa.system.vo.TSystemUser;
import com.tjsinfo.tjsoa.system.vo.TSystemUserRoleGroup;

public interface ISystemUserDao {
	/**
	 * 添加一个系统用户
	 * @param 系统用户
	 */
	public abstract Integer save(TSystemUser transientInstance);
	/**
	 * 删除一个系统用户
	 * @param 系统用户
	 */
	public abstract void delete(TSystemUser persistentInstance);
	/**
	 * 根据ID查询一个系统用户
	 * @param 系统用户
	 */
	public abstract TSystemUser findById(java.lang.Integer id);
	/**
	 * 根据USERID查询一个系统用户
	 * @param 系统用户
	 */
	public abstract TSystemUser findByuserId(java.lang.Integer userId);
	/**
	 * 根据USERID查询系统权限组用户
	 * @param 系统用户
	 */
	public List<TSystemUserRoleGroup> selectGroupsByRoleGroup(Integer roleGroupId);
	/**
	 * 根据USERID查询系统权限组用户详情
	 * @param 系统用户
	 */
	public List<TSystemUser> selectByRoleGroup(Integer roleGroupId);
	/**
	 * 根据例子查询一个系统用户
	 * @param 系统用户
	 */
	public abstract List findByExample(TSystemUser instance);
	/**
	 * 根据属性查询一个系统用户
	 * @param 系统用户
	 */
	public abstract List findByProperty(String propertyName, Object value);
	/**
	 * 查询所有系统用户
	 * @param 系统用户
	 */
	public abstract List findAll();
	/**
	 * 更新系统用户
	 * @param 系统用户
	 */
	public abstract TSystemUser merge(TSystemUser detachedInstance);
	/**
	 * 根据ID添加和更新用户
	 * @param 系统用户
	 */
	public abstract void attachDirty(TSystemUser instance);
	/**
	 * 用户加锁
	 * @param 系统用户
	 */
	public abstract void attachClean(TSystemUser instance);
	/**
	 * 更新用户
	 * @param 系统用户
	 * @return
	 */
	public abstract Boolean update(TSystemUser detachedInstance);

}